/**
 * 字符串相关操作
 */
const String = {

  /**
   * json转为字符串
   * @param {json|Array} obj json
   * @param {string} def 默认返回值（可选），不传则默认为 '{}'
   * @returns {string} 字符串
   */
  toStr: (obj, def = '{}') => {
    let res = def;
    try {
      res = JSON.stringify(obj);
    } catch (error) {
    }
    return res;
  },

  /**
   * 字符串转为json
   * @param {string} str 字符串
   * @param {object} def 默认返回值（可选），不传则默认为 {}
   * @returns {object} json
   */
  toJson: (str, def = {}) => {
    let res = def;
    str = str.trim();
    if (str != '') {
      try {
        res = JSON.parse(str);
      } catch (error) {
      }
    }
    return res;
  },

  /**
   * 字符串转为 int
   * @param {string} str 字符串
   * @param {number} def 默认返回值（可选），不传则默认为 0
   * @returns {number} int
   */
  toInt: (str, def = 0) => {
    let num = def;
    try {
      num = parseInt(str);
    } catch (error) {
    }
    if (isNaN(num)) {
      num = def;
    }
    return num;
  },

  /**
   * 字符串转为 double
   * @param {string} str 字符串
   * @param {number} def 默认返回值（可选），不传则默认为 0
   * @returns {number} float
   */
  toDouble: (str, def = 0) => {
    let num = def;
    try {
      num = parseFloat(str);
    } catch (error) {
    }
    if (isNaN(num)) {
      num = def;
    }
    return num;
  },


};

export default String;
